<?php

namespace app\rest\controller;

use think\Controller;
use think\Request;
use think\Db;

class User extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $list = Db::name('hc_user')->field(['id', 'name'])->order('id', 'asc')->select();
//        var_dump($list);
//        加载并输出模板
//        $this->assign('title','用户列表');
//        $this->assign('list',$list);
//        return $this->fetch('user/index');
//        使用助手函数view()
        return view('user/index', [
            'list' => $list,
            'title' => '用户列表'
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('user/create', ['title' => '添加用户']);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //获取post提交的数据
//        通过request对象获取
//        $p=Request::instance()->post();
//        助手函数
//        $p=input('post.');
//        依赖注入的方式获取
        $p = $request->post();
//        var_dump($p);
//        筛选过滤需要的数据
        $data = [
            'name' => $p['name'],
            'pass' => md5('$p["pass"]'),
            'sex' => $p['sex'],
            'age' => $p['age'],
            'province' => $p['province']
        ];
//        var_dump($data);
//        执行插入数据的操作
        $row = Db::name('hc_user')->data($data)->insert();
        if ($row > 0){
            return $this->success('添加成功',url('rest/user/index'));
        }else{
            return $this->error('添加失败');

        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        if (!Request::instance()->isAjax()) {
            $this->error('走错喽~~~~', '/');
        }
//        查询指定的用户信息  field('pass',true)除pass以外的所有字段
        $row = Db::name('hc_user')->field('pass', true)->find($id);
//        var_dump($row);
        if ($row === null) {
            $info['status'] = false;
            $info['title'] = '查无此人';
            $info['datas'] = '暂无数据';
        } else {
            $info['status'] = true;
            $info['title'] = $row['name'];
            $info['datas'] = $row;
        }

        return json($info);
    }

    public function readpage($id)
    {
//        查询指定的用户信息  field('pass',true)除pass以外的所有字段
        $row = Db::name('hc_user')->field('pass', true)->find($id);

        return view('user/show', [
            'title' => '查看用户' . $row['name'] . '的信息',
            'row' => $row
        ]);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //查询指定的用户信息  field('pass',true)除pass以外的所有字段
        $row = Db::name('hc_user')->field('pass', true)->find($id);

        return view('user/edit', [
            'title' => '编辑用户' . $row['name'] . '的信息',
            'data' => $row
        ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //获取put传递的数据
        $p=$request->put();
//        var_export($data);
        $data = [
            'name' => $p['name'],
            'sex' => $p['sex'],
            'age' => $p['age'],
            'province' => $p['province']
        ];
//        var_dump($data);
//        执行插入数据的操作
        $row = Db::name('hc_user')->where('id',$id)->update($data);

        if ($row){
            return $this->success('编辑成功',url('rest/user/index'));
        }else{
            return $this->error('编辑失败');

        }
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $result = Db::name('hc_user')->delete($id);
        if ($result) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'id为:' . $id . '的用户删除成功';
        } else {
            $info['status'] = false;
            $info['id'] = $id;
            $info['info'] = 'id为:' . $id . '的用户删除失败,请稍后重试';
        }

        return json($info);

    }
}
